<?php

namespace app\logic;

use app\Api;

/**
 * 快递模版类
 * @note 包含快递费计算方法、快递模版相关方法
 * Class ExpressTemplate
 * @package app\logic
 */
class ExpressTemplate extends Api
{
    public function _initialize()
    {
        parent::_initialize();
    }

    public function test()
    {

    }

    // 创建快递模版
    public function createExpressTemplate($int_fee_type, $str_template_name, $int_send_type, $int_received_type, $str_area_id = '', $arr_weight_data = [])
    {
        if ($int_fee_type == 0) {
            $arr_data = [
                'template_name' => $str_template_name,
                'fee_type' => 0, // 0:按重量计算；1：按商品件数计算
                'first_heavy' => $arr_weight_data['first_heavy'], // 首重
                'first_heavy_fee' => $arr_weight_data['first_heavy_fee'], // 首重费用
                'add_weight' => $arr_weight_data['add_weight'], // 续重
                'add_weight_fee' => $arr_weight_data['add_weight_fee'], // 续重费用
                'send_type' => $int_send_type, // 0:全国；1：部分地区；2：除部分地区
                'received_type' => $int_received_type, // 0:全国；1：部分地区；2：除部分地区
            ];
        } else if ($int_fee_type == 1) {
            $arr_data = [
                'template_name' => $str_template_name,
                'fee_type' => 1, // 0:按重量计算；1：按商品件数计算
                'send_type' => $int_send_type, // 0:全国；1：部分地区；2：除部分地区
                'received_type' => $int_received_type, // 0:全国；1：部分地区；2：除部分地区
            ];
        } else {
            return false;
        }

        //$int_template_id = ->toAdd($arr_data);

        $int_template_id = 0;
        // 0:发；1：收
        if (in_array($arr_data['send_type'], [1, 2])) {
            $arr_send_data = $this->getTemplateAreaList($int_template_id, $str_area_id, 0);
        }

        if (in_array($arr_data['received_type'], [1, 2])) {
            $arr_received_data = $this->getTemplateAreaList($int_template_id, $str_area_id, 1);
        }

        $arr_template_area_data = array_merge($arr_send_data, $arr_received_data);

        // ->toAdd($arr_template_area_data);
    }

    // 收发对象area_id

    // 更新快递模版
    // 获取快递费用
    // 获取可用的快递模版
    // 获取可用的服务区域ID
    //

    private function getTemplateAreaList($int_template_id, $str_area_id, $int_type)
    {
        $arr_area_id = (array)explode(',', $str_area_id);
        if (!isset($arr_area_id[0])) return false;

        $arr_where = [
            'id' => ['IN', $str_area_id]
        ];

        $arr_info = [];//->toSelect($arr_where, 'id,level');
        $arr_data = [];
        $int_i = 0;
        foreach ($arr_info as $value) {
            $arr_data[$int_i] = [
                'template_id' => $int_template_id,
                'type' => $int_type, // 收发类型
                'area_id' => $value['id'],
                'level' => $value['level'],
            ];
        }

        return $arr_data;
    }
}
